package com.yicong.ants.bean.hotel;

import com.cchao.simplelib.util.StringHelper;
import com.google.gson.annotations.SerializedName;

/**
 * @author LinDingQiang
 * @description
 * @time 4/17/21 11:53 PM
 * @email dingqiang.l
 */
public class HotelBean {
    /**
     * Address : 金科蚂蚁a座(北环、红星美凯龙、冉家坝、金科蚂蚁)
     * Bookable : 1
     * City : 重庆
     * CityId : 4
     * Descriptions :
     * HotelCategory : 494
     * HotelID : 43440268
     * HotelName : 重庆雅舍•民宿
     * HotelSubCategory : 703
     * HotelType : 2
     * IsOfficialRating : false
     * Loc : {"lat":29.6028912028785,"lon":106.49585703571327}
     * OpenYear : 2019-01-01
     * Picture : http://dimg04.c-ctrip.com/images//0205l120008brsms5B332_R_550_412.jpg
     * Province : 重庆
     * Ratings : 0
     * RoomQuantity : 1
     * StarRating : 0
     * Telephone : 862126137886,4050040
     * _id : {"$oid":"601c2cc55b5066240607027a"}
     * area : 渝北区
     * close : 0
     * coin : 26.55
     * distance : 1478.516公里
     */

    @SerializedName("Address")
    private String address;
    @SerializedName("Bookable")
    private String bookable;
    @SerializedName("City")
    private String city;
    @SerializedName("CityId")
    private String cityId;
    @SerializedName("Descriptions")
    private String descriptions;
    @SerializedName("HotelCategory")
    private String hotelCategory;
    @SerializedName("HotelID")
    private String hotelID;
    @SerializedName("HotelName")
    private String hotelName;
    @SerializedName("HotelSubCategory")
    private String hotelSubCategory;
    @SerializedName("HotelType")
    private String hotelType;
    @SerializedName("IsOfficialRating")
    private boolean lsOfficialRating;
    /**
     * lat : 29.6028912028785
     * lon : 106.49585703571327
     */

    @SerializedName("Loc")
    private LocBean loc;
    @SerializedName("OpenYear")
    private String o;
    @SerializedName("Picture")
    private String picture;
    @SerializedName("Province")
    private String province;
    @SerializedName("Ratings")
    private String ratings;
    @SerializedName("RoomQuantity")
    private String roomQuantity;
    @SerializedName("StarRating")
    private String starRating;
    @SerializedName("Telephone")
    private String telephone;
    /**
     * $oid : 601c2cc55b5066240607027a
     */

    private IdBean _id;
    private String area;
    private String close;
    private String coin;
    private String distance;

    public HotelBean() {
    }

    public boolean isShowDot() {
        return StringHelper.isNotEmpty(distance) && StringHelper.isNotEmpty(address);
    }

    public String getAddress() {
        return this.address;
    }

    public String getBookable() {
        return this.bookable;
    }

    public String getCity() {
        return this.city;
    }

    public String getCityId() {
        return this.cityId;
    }

    public String getDescriptions() {
        return this.descriptions;
    }

    public String getHotelCategory() {
        return this.hotelCategory;
    }

    public String getHotelID() {
        return this.hotelID;
    }

    public String getHotelName() {
        return this.hotelName;
    }

    public String getHotelSubCategory() {
        return this.hotelSubCategory;
    }

    public String getHotelType() {
        return this.hotelType;
    }

    public boolean isLsOfficialRating() {
        return this.lsOfficialRating;
    }

    public LocBean getLoc() {
        return this.loc;
    }

    public String getO() {
        return this.o;
    }

    public String getPicture() {
        return this.picture;
    }

    public String getProvince() {
        return this.province;
    }

    public String getRatings() {
        return this.ratings;
    }

    public String getRoomQuantity() {
        return this.roomQuantity;
    }

    public String getStarRating() {
        return this.starRating;
    }

    public String getTelephone() {
        return this.telephone;
    }

    public IdBean get_id() {
        return this._id;
    }

    public String getArea() {
        return this.area;
    }

    public String getClose() {
        return this.close;
    }

    public String getCoin() {
        return this.coin;
    }

    public String getDistance() {
        return this.distance;
    }

    public void setAddress(String address) {
        this.address = address;
    }

    public void setBookable(String bookable) {
        this.bookable = bookable;
    }

    public void setCity(String city) {
        this.city = city;
    }

    public void setCityId(String cityId) {
        this.cityId = cityId;
    }

    public void setDescriptions(String descriptions) {
        this.descriptions = descriptions;
    }

    public void setHotelCategory(String hotelCategory) {
        this.hotelCategory = hotelCategory;
    }

    public void setHotelID(String hotelID) {
        this.hotelID = hotelID;
    }

    public void setHotelName(String hotelName) {
        this.hotelName = hotelName;
    }

    public void setHotelSubCategory(String hotelSubCategory) {
        this.hotelSubCategory = hotelSubCategory;
    }

    public void setHotelType(String hotelType) {
        this.hotelType = hotelType;
    }

    public void setLsOfficialRating(boolean lsOfficialRating) {
        this.lsOfficialRating = lsOfficialRating;
    }

    public void setLoc(LocBean loc) {
        this.loc = loc;
    }

    public void setO(String o) {
        this.o = o;
    }

    public void setPicture(String picture) {
        this.picture = picture;
    }

    public void setProvince(String province) {
        this.province = province;
    }

    public void setRatings(String ratings) {
        this.ratings = ratings;
    }

    public void setRoomQuantity(String roomQuantity) {
        this.roomQuantity = roomQuantity;
    }

    public void setStarRating(String starRating) {
        this.starRating = starRating;
    }

    public void setTelephone(String telephone) {
        this.telephone = telephone;
    }

    public void set_id(IdBean _id) {
        this._id = _id;
    }

    public void setArea(String area) {
        this.area = area;
    }

    public void setClose(String close) {
        this.close = close;
    }

    public void setCoin(String coin) {
        this.coin = coin;
    }

    public void setDistance(String distance) {
        this.distance = distance;
    }

    public boolean equals(final Object o) {
        if (o == this) return true;
        if (!(o instanceof HotelBean)) return false;
        final HotelBean other = (HotelBean) o;
        if (!other.canEqual((Object) this)) return false;
        final Object this$address = this.getAddress();
        final Object other$address = other.getAddress();
        if (this$address == null ? other$address != null : !this$address.equals(other$address))
            return false;
        final Object this$bookable = this.getBookable();
        final Object other$bookable = other.getBookable();
        if (this$bookable == null ? other$bookable != null : !this$bookable.equals(other$bookable))
            return false;
        final Object this$city = this.getCity();
        final Object other$city = other.getCity();
        if (this$city == null ? other$city != null : !this$city.equals(other$city)) return false;
        final Object this$cityId = this.getCityId();
        final Object other$cityId = other.getCityId();
        if (this$cityId == null ? other$cityId != null : !this$cityId.equals(other$cityId))
            return false;
        final Object this$descriptions = this.getDescriptions();
        final Object other$descriptions = other.getDescriptions();
        if (this$descriptions == null ? other$descriptions != null : !this$descriptions.equals(other$descriptions))
            return false;
        final Object this$hotelCategory = this.getHotelCategory();
        final Object other$hotelCategory = other.getHotelCategory();
        if (this$hotelCategory == null ? other$hotelCategory != null : !this$hotelCategory.equals(other$hotelCategory))
            return false;
        final Object this$hotelID = this.getHotelID();
        final Object other$hotelID = other.getHotelID();
        if (this$hotelID == null ? other$hotelID != null : !this$hotelID.equals(other$hotelID))
            return false;
        final Object this$hotelName = this.getHotelName();
        final Object other$hotelName = other.getHotelName();
        if (this$hotelName == null ? other$hotelName != null : !this$hotelName.equals(other$hotelName))
            return false;
        final Object this$hotelSubCategory = this.getHotelSubCategory();
        final Object other$hotelSubCategory = other.getHotelSubCategory();
        if (this$hotelSubCategory == null ? other$hotelSubCategory != null : !this$hotelSubCategory.equals(other$hotelSubCategory))
            return false;
        final Object this$hotelType = this.getHotelType();
        final Object other$hotelType = other.getHotelType();
        if (this$hotelType == null ? other$hotelType != null : !this$hotelType.equals(other$hotelType))
            return false;
        if (this.isLsOfficialRating() != other.isLsOfficialRating()) return false;
        final Object this$loc = this.getLoc();
        final Object other$loc = other.getLoc();
        if (this$loc == null ? other$loc != null : !this$loc.equals(other$loc)) return false;
        final Object this$o = this.getO();
        final Object other$o = other.getO();
        if (this$o == null ? other$o != null : !this$o.equals(other$o)) return false;
        final Object this$picture = this.getPicture();
        final Object other$picture = other.getPicture();
        if (this$picture == null ? other$picture != null : !this$picture.equals(other$picture))
            return false;
        final Object this$province = this.getProvince();
        final Object other$province = other.getProvince();
        if (this$province == null ? other$province != null : !this$province.equals(other$province))
            return false;
        final Object this$ratings = this.getRatings();
        final Object other$ratings = other.getRatings();
        if (this$ratings == null ? other$ratings != null : !this$ratings.equals(other$ratings))
            return false;
        final Object this$roomQuantity = this.getRoomQuantity();
        final Object other$roomQuantity = other.getRoomQuantity();
        if (this$roomQuantity == null ? other$roomQuantity != null : !this$roomQuantity.equals(other$roomQuantity))
            return false;
        final Object this$starRating = this.getStarRating();
        final Object other$starRating = other.getStarRating();
        if (this$starRating == null ? other$starRating != null : !this$starRating.equals(other$starRating))
            return false;
        final Object this$telephone = this.getTelephone();
        final Object other$telephone = other.getTelephone();
        if (this$telephone == null ? other$telephone != null : !this$telephone.equals(other$telephone))
            return false;
        final Object this$_id = this.get_id();
        final Object other$_id = other.get_id();
        if (this$_id == null ? other$_id != null : !this$_id.equals(other$_id)) return false;
        final Object this$area = this.getArea();
        final Object other$area = other.getArea();
        if (this$area == null ? other$area != null : !this$area.equals(other$area)) return false;
        final Object this$close = this.getClose();
        final Object other$close = other.getClose();
        if (this$close == null ? other$close != null : !this$close.equals(other$close))
            return false;
        final Object this$coin = this.getCoin();
        final Object other$coin = other.getCoin();
        if (this$coin == null ? other$coin != null : !this$coin.equals(other$coin)) return false;
        final Object this$distance = this.getDistance();
        final Object other$distance = other.getDistance();
        if (this$distance == null ? other$distance != null : !this$distance.equals(other$distance))
            return false;
        return true;
    }

    protected boolean canEqual(final Object other) {
        return other instanceof HotelBean;
    }

    public int hashCode() {
        final int PRIME = 59;
        int result = 1;
        final Object $address = this.getAddress();
        result = result * PRIME + ($address == null ? 43 : $address.hashCode());
        final Object $bookable = this.getBookable();
        result = result * PRIME + ($bookable == null ? 43 : $bookable.hashCode());
        final Object $city = this.getCity();
        result = result * PRIME + ($city == null ? 43 : $city.hashCode());
        final Object $cityId = this.getCityId();
        result = result * PRIME + ($cityId == null ? 43 : $cityId.hashCode());
        final Object $descriptions = this.getDescriptions();
        result = result * PRIME + ($descriptions == null ? 43 : $descriptions.hashCode());
        final Object $hotelCategory = this.getHotelCategory();
        result = result * PRIME + ($hotelCategory == null ? 43 : $hotelCategory.hashCode());
        final Object $hotelID = this.getHotelID();
        result = result * PRIME + ($hotelID == null ? 43 : $hotelID.hashCode());
        final Object $hotelName = this.getHotelName();
        result = result * PRIME + ($hotelName == null ? 43 : $hotelName.hashCode());
        final Object $hotelSubCategory = this.getHotelSubCategory();
        result = result * PRIME + ($hotelSubCategory == null ? 43 : $hotelSubCategory.hashCode());
        final Object $hotelType = this.getHotelType();
        result = result * PRIME + ($hotelType == null ? 43 : $hotelType.hashCode());
        result = result * PRIME + (this.isLsOfficialRating() ? 79 : 97);
        final Object $loc = this.getLoc();
        result = result * PRIME + ($loc == null ? 43 : $loc.hashCode());
        final Object $o = this.getO();
        result = result * PRIME + ($o == null ? 43 : $o.hashCode());
        final Object $picture = this.getPicture();
        result = result * PRIME + ($picture == null ? 43 : $picture.hashCode());
        final Object $province = this.getProvince();
        result = result * PRIME + ($province == null ? 43 : $province.hashCode());
        final Object $ratings = this.getRatings();
        result = result * PRIME + ($ratings == null ? 43 : $ratings.hashCode());
        final Object $roomQuantity = this.getRoomQuantity();
        result = result * PRIME + ($roomQuantity == null ? 43 : $roomQuantity.hashCode());
        final Object $starRating = this.getStarRating();
        result = result * PRIME + ($starRating == null ? 43 : $starRating.hashCode());
        final Object $telephone = this.getTelephone();
        result = result * PRIME + ($telephone == null ? 43 : $telephone.hashCode());
        final Object $_id = this.get_id();
        result = result * PRIME + ($_id == null ? 43 : $_id.hashCode());
        final Object $area = this.getArea();
        result = result * PRIME + ($area == null ? 43 : $area.hashCode());
        final Object $close = this.getClose();
        result = result * PRIME + ($close == null ? 43 : $close.hashCode());
        final Object $coin = this.getCoin();
        result = result * PRIME + ($coin == null ? 43 : $coin.hashCode());
        final Object $distance = this.getDistance();
        result = result * PRIME + ($distance == null ? 43 : $distance.hashCode());
        return result;
    }

    public String toString() {
        return "HotelBean(address=" + this.getAddress() + ", bookable=" + this.getBookable() + ", city=" + this.getCity() + ", cityId=" + this.getCityId() + ", descriptions=" + this.getDescriptions() + ", hotelCategory=" + this.getHotelCategory() + ", hotelID=" + this.getHotelID() + ", hotelName=" + this.getHotelName() + ", hotelSubCategory=" + this.getHotelSubCategory() + ", hotelType=" + this.getHotelType() + ", lsOfficialRating=" + this.isLsOfficialRating() + ", loc=" + this.getLoc() + ", o=" + this.getO() + ", picture=" + this.getPicture() + ", province=" + this.getProvince() + ", ratings=" + this.getRatings() + ", roomQuantity=" + this.getRoomQuantity() + ", starRating=" + this.getStarRating() + ", telephone=" + this.getTelephone() + ", _id=" + this.get_id() + ", area=" + this.getArea() + ", close=" + this.getClose() + ", coin=" + this.getCoin() + ", distance=" + this.getDistance() + ")";
    }

    public static class LocBean {
        private String lat;
        private String lon;

        public LocBean() {
        }

        public String getLat() {
            return this.lat;
        }

        public String getLon() {
            return this.lon;
        }

        public void setLat(String lat) {
            this.lat = lat;
        }

        public void setLon(String lon) {
            this.lon = lon;
        }

        public boolean equals(final Object o) {
            if (o == this) return true;
            if (!(o instanceof LocBean)) return false;
            final LocBean other = (LocBean) o;
            if (!other.canEqual((Object) this)) return false;
            final Object this$lat = this.getLat();
            final Object other$lat = other.getLat();
            if (this$lat == null ? other$lat != null : !this$lat.equals(other$lat)) return false;
            final Object this$lon = this.getLon();
            final Object other$lon = other.getLon();
            if (this$lon == null ? other$lon != null : !this$lon.equals(other$lon)) return false;
            return true;
        }

        protected boolean canEqual(final Object other) {
            return other instanceof LocBean;
        }

        public int hashCode() {
            final int PRIME = 59;
            int result = 1;
            final Object $lat = this.getLat();
            result = result * PRIME + ($lat == null ? 43 : $lat.hashCode());
            final Object $lon = this.getLon();
            result = result * PRIME + ($lon == null ? 43 : $lon.hashCode());
            return result;
        }

        public String toString() {
            return "HotelBean.LocBean(lat=" + this.getLat() + ", lon=" + this.getLon() + ")";
        }
    }

    public static class IdBean {
        @SerializedName("$oid")
        private String oid;

        public IdBean() {
        }

        public String getOid() {
            return this.oid;
        }

        public void setOid(String oid) {
            this.oid = oid;
        }

        public boolean equals(final Object o) {
            if (o == this) return true;
            if (!(o instanceof IdBean)) return false;
            final IdBean other = (IdBean) o;
            if (!other.canEqual((Object) this)) return false;
            final Object this$oid = this.getOid();
            final Object other$oid = other.getOid();
            if (this$oid == null ? other$oid != null : !this$oid.equals(other$oid)) return false;
            return true;
        }

        protected boolean canEqual(final Object other) {
            return other instanceof IdBean;
        }

        public int hashCode() {
            final int PRIME = 59;
            int result = 1;
            final Object $oid = this.getOid();
            result = result * PRIME + ($oid == null ? 43 : $oid.hashCode());
            return result;
        }

        public String toString() {
            return "HotelBean.IdBean(oid=" + this.getOid() + ")";
        }
    }
}
